<html>
<head><meta charset="utf-8"><title>eddyb&#x27;s architectural sketch · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html">eddyb&#x27;s architectural sketch</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="163596738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163596738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163596738">(Apr 17 2019 at 20:11)</a>:</h4>
<p><em>a few hours of inkscape later</em> this is closer to what I was trying to express:<br>
<a href="/user_uploads/4715/HDUhlrO93H2BaWkf9s-Y_KW_/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/HDUhlrO93H2BaWkf9s-Y_KW_/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/HDUhlrO93H2BaWkf9s-Y_KW_/pasted_image.png"></a></div>



<a name="163596755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163596755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163596755">(Apr 17 2019 at 20:11)</a>:</h4>
<p>there must be an easier way to generate something like this  though :P</p>



<a name="163597015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163597015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163597015">(Apr 17 2019 at 20:14)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> looks nice :)</p>



<a name="163597064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163597064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163597064">(Apr 17 2019 at 20:15)</a>:</h4>
<p>/me keeps copying messages from Discord:</p>



<a name="163597079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163597079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163597079">(Apr 17 2019 at 20:15)</a>:</h4>
<p>that's more or less the part that I don't see changing much, but everything outside Ty/Expr/Pat is finite structure and IMO should form the "definition spine" of a crate, off which Ty/Expr/Pat hang</p>



<a name="163597086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163597086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163597086">(Apr 17 2019 at 20:15)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I wonder what about <a href="https://www.draw.io/" target="_blank" title="https://www.draw.io/">https://www.draw.io/</a> or <a href="https://www.figma.com/" target="_blank" title="https://www.figma.com/">https://www.figma.com/</a></p>



<a name="163597098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163597098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163597098">(Apr 17 2019 at 20:15)</a>:</h4>
<p>and this forms the basis of the "roadmap" I want to discuss at some point in the future</p>



<a name="163598312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163598312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163598312">(Apr 17 2019 at 20:33)</a>:</h4>
<p>added a few more details in: <a href="/user_uploads/4715/6WFcuFLWIti5atsAxcPicJCd/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/6WFcuFLWIti5atsAxcPicJCd/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/6WFcuFLWIti5atsAxcPicJCd/pasted_image.png"></a></div>



<a name="163599342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163599342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163599342">(Apr 17 2019 at 20:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I'll take a look tomorrow, thanks!</p>



<a name="163603950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163603950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163603950">(Apr 17 2019 at 21:49)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> have a medal for this glorious piece of art <span aria-label="medal" class="emoji emoji-1f3c5" role="img" title="medal">:medal:</span></p>



<a name="163624762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163624762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163624762">(Apr 18 2019 at 05:39)</a>:</h4>
<p>I need to make it easier to edit though, because I need to have both "current state" and the future state</p>



<a name="163624768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163624768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163624768">(Apr 18 2019 at 05:39)</a>:</h4>
<p>and this is the wrong thread anyway, maybe I should split it off (EDIT: done)</p>



<a name="163724066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163724066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163724066">(Apr 19 2019 at 09:25)</a>:</h4>
<p>looking more at this... <span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="124288">@oli</span> <span class="user-mention" data-user-id="120791">@RalfJ</span> would you think it would make more sense if instead of <code>mir::Mir</code> we'd have <code>mir::Body</code>?</p>



<a name="163724141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163724141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163724141">(Apr 19 2019 at 09:26)</a>:</h4>
<p>because then in HIR and THIR, <code>Expr</code> and <code>Pat</code> would be nested in one more thing, a <code>Body</code>, and then a THIR body would turn into a MIR body</p>



<a name="163724152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163724152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163724152">(Apr 19 2019 at 09:26)</a>:</h4>
<p>and maybe <code>ty::Ty</code> can become <code>mir::Ty</code>?</p>



<a name="163724155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163724155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163724155">(Apr 19 2019 at 09:26)</a>:</h4>
<p>/me <em>ducks and runs</em></p>



<a name="163724200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163724200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163724200">(Apr 19 2019 at 09:27)</a>:</h4>
<p>(that is, the entirety of the {type,trait}-system would be considered as "part of MIR", and what we call "MIR" today would refer to the way fn/const bodies are represented in the "extended MIR universe")</p>



<a name="163730255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163730255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163730255">(Apr 19 2019 at 11:50)</a>:</h4>
<p><code>Body</code> vs <code>Mir</code>... I dont really care^^</p>



<a name="163730260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163730260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163730260">(Apr 19 2019 at 11:50)</a>:</h4>
<p>your argument makes sense to me</p>



<a name="163731126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163731126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163731126">(Apr 19 2019 at 12:09)</a>:</h4>
<p>+1 to representation where we have a flat-ish list of definitions (items), and, separately, some items have rich tree/graph based bodies.</p>



<a name="163731181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163731181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163731181">(Apr 19 2019 at 12:10)</a>:</h4>
<p>We do have bodies in rust-analyzer :)</p>



<a name="163847300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163847300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163847300">(Apr 21 2019 at 11:12)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> convergence! I've been afraid of looking too much at rust-analyzer, but that makes sense</p>



<a name="163847998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163847998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163847998">(Apr 21 2019 at 11:35)</a>:</h4>
<p>haven't incorporated the MIR thing but tried an edit of <span class="user-mention" data-user-id="124288">@oli</span>'s graphviz: <a href="https://bit.ly/2IKL4E3" target="_blank" title="https://bit.ly/2IKL4E3">https://bit.ly/2IKL4E3</a></p>



<a name="163848000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163848000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163848000">(Apr 21 2019 at 11:35)</a>:</h4>
<p>(and yes, that would imply parsing doesn't output <em>only</em> AST)</p>



<a name="163852214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163852214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163852214">(Apr 21 2019 at 13:39)</a>:</h4>
<blockquote>
<p>I've been afraid of looking too much at rust-analyzer, but that makes sense</p>
</blockquote>
<p>Why afraid? To have an unbiased overview of the design space? I'd love to discuss high-level architecture at some point. The thing I am struggling most with are spans: as far as I understand, the are pretty much ingrained into almost every rustc data structure, but in ra I doesn't have them: they make incremental hard, and they are lossy in a sense that it's hard to get from IR back to the syntax tree using spans (you can' but that feels not type-safe). That is, for IDE the arrows should be bidirectional, and, while spans can play some role in the inverse transform, I am not sure it's the right approach.</p>



<a name="163852646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163852646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163852646">(Apr 21 2019 at 13:52)</a>:</h4>
<p>IMO we need one or two indirection layers (or rather, two layers that are represented with one system):<br>
 - token ranges instead of character ranges<br>
 - split the inputs into "containers", like defs, or macro expansions (or make expansions defs but that  feels weird)</p>



<a name="163939023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163939023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163939023">(Apr 22 2019 at 21:17)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> so I finally got some time to look at your sketch -- but I'm not sure if I understand the deeper ideas you are trying to convey</p>



<a name="163939125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163939125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163939125">(Apr 22 2019 at 21:18)</a>:</h4>
<p>that said, I think that calling "MIR" the combination of types + MIR bodies etc is a really nice idea</p>



<a name="163939182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163939182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163939182">(Apr 22 2019 at 21:18)</a>:</h4>
<p>although I'm not <em>entirely</em> convinced</p>



<a name="163939197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163939197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163939197">(Apr 22 2019 at 21:18)</a>:</h4>
<p>(e.g., we might want to think about how chalk lowering can fit into this picture)</p>



<a name="163939685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163939685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163939685">(Apr 22 2019 at 21:24)</a>:</h4>
<p>added this to my <a href="https://hackmd.io/mHlmaUYMSy2SJ5HgjVoVSg" target="_blank" title="https://hackmd.io/mHlmaUYMSy2SJ5HgjVoVSg">hackmd document</a> with possible design meeting ideas</p>



<a name="163970450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163970450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163970450">(Apr 23 2019 at 08:09)</a>:</h4>
<p>I'd say Chalk operates entirely within MIR (which sits on Def)</p>



<a name="163970637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163970637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163970637">(Apr 23 2019 at 08:13)</a>:</h4>
<p>as for the sketch, I need to put some time into streamlining the process (with a generator from an easily-editable syntax), and adding all the details I want to, and have a version that accurately reflects today's state of things</p>



<a name="163971192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/163971192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#163971192">(Apr 23 2019 at 08:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> like, what you're seeing so far is the most basic skeleton of it</p>



<a name="164061713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/164061713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#164061713">(Apr 24 2019 at 08:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> opened this issue, could go on your discussion ideas list <a href="https://github.com/rust-lang/rust/issues/60229" target="_blank" title="https://github.com/rust-lang/rust/issues/60229">https://github.com/rust-lang/rust/issues/60229</a></p>



<a name="164285799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/164285799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#164285799">(Apr 26 2019 at 18:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="124288">@oli</span> barely starting to convey something useful: today: <a href="https://bit.ly/2GBLppR" target="_blank" title="https://bit.ly/2GBLppR">https://bit.ly/2GBLppR</a> -&gt; future: <a href="https://bit.ly/2L4HYxp" target="_blank" title="https://bit.ly/2L4HYxp">https://bit.ly/2L4HYxp</a></p>



<a name="164285965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/164285965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#164285965">(Apr 26 2019 at 18:24)</a>:</h4>
<p>sadly, there's only so much a "cool diagram" (if at all) can show :(</p>



<a name="164290956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/164290956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#164290956">(Apr 26 2019 at 19:30)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> <span aria-label="heart eyes" class="emoji emoji-1f60d" role="img" title="heart eyes">:heart_eyes:</span> it's beautiful, whatever it means :P</p>



<a name="164291347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/164291347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#164291347">(Apr 26 2019 at 19:34)</a>:</h4>
<p>lol</p>



<a name="248184911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/248184911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Notification Bot <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#248184911">(Aug 03 2021 at 06:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> has marked this topic as resolved.</p>



<a name="248184918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/248184918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#248184918">(Aug 03 2021 at 06:00)</a>:</h4>
<p>that's... not... what I wanted to do ugh</p>



<a name="248184922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/248184922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Notification Bot <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#248184922">(Aug 03 2021 at 06:00)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> has marked this topic as unresolved.</p>



<a name="248184943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/eddyb%27s%20architectural%20sketch/near/248184943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/eddyb&#x27;s.20architectural.20sketch.html#248184943">(Aug 03 2021 at 06:01)</a>:</h4>
<p>(I thought that button was a menu dropdown :/)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>